<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//Ultima verificacion: 15-10-2015 ; 22-11-2014 ; 21-02-2015
class EspacioEscolar extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los espacios escolares activos o inactivos pero NO los borrados (-1)
	function consultar(){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Cargo el modelo donde estan los datos de los espacios escolares registrados para pedirle un listado con todos ellos
			$this->load->model('m_espacio_escolar');
			
			//Busco todos los espacios escolares activos o inactivos, pero no los borrados.
			$listadoEspaciosEscolares = $this->m_espacio_escolar->buscar();
			
			//Le paso el listado de todos los espacios escolares a la vista para que los muestre en una tabla
			$datos['espaciosEscolares'] = $listadoEspaciosEscolares;
			
			//Cargo la vista donde se muestra la tabla de espacios escolares y la guardo en una variable para pasarsela a la vista principal
			$datosPrincipal['vista'] = $this->load->view('v_espacios_escolares', $datos, true);
			
			//Cargo la vista principal con los datos de la vista recien generada
			$this->load->view('v_sistema', $datosPrincipal);
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	//Sirve para eliminar el espacio escolar pasado por la url
	function eliminar($idEspacioEscolar=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idEspacioEscolar pasado sea numerico y mayor que cero.
			if(is_numeric($idEspacioEscolar) && $idEspacioEscolar>0){
				//Cargo el modelo donde estan los datos de los espacios escolares registrados
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar que hay que eliminar
				$espacioEscolar = $this->m_espacio_escolar->get($idEspacioEscolar);
				
				//Tercera comprobacion: Que el espacio escolar pasado por la url sea existente
				if($espacioEscolar->num_rows() == 1){
					//Elimino al espacio escolar pasado por la url
					$respuesta = $this->m_espacio_escolar->eliminar($idEspacioEscolar, $this->session->userdata('idUsuarioLog'));
					
					//Busco todos los espacios escolares activos o inactivos, pero no los borrados que quedaron
					$listadoEspaciosEscolares = $this->m_espacio_escolar->buscar();
					
					//Le paso el listado de todos los espacios escolares a la vista para que los muestre en una tabla
					$datos['espaciosEscolares'] = $listadoEspaciosEscolares;
					
					//Cargo la vista donde se muestra la tabla de espacios escolares
					$this->load->view('v_espacios_escolares', $datos);
				} else {
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					echo("No existe el registro seleccionado para borrar.");
				}
			} else {
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se ha pasado los parametros necesarios para borrar un registro.");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un registro.");
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	//Abre la pantalla con el formulario para crear un espacio escolar nuevo
	function abrirPantallaCrear(){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Cargo el modelo donde estan los datos de los tipos de espacios registrados
			$this->load->model('m_tipo_espacio_escolar');
			
			//Busco todos los tipos de espacios activos
			$listadoTiposEspaciosEscolares = $this->m_tipo_espacio_escolar->buscarActivos();
			
			//Le paso el listado de todos los tipos de espacios a la vista para que los muestre en la lista seleccionable
			$datos['tiposEspaciosEscolares'] = $listadoTiposEspaciosEscolares;
			
			//Cargo la vista donde se muestra el formulario para crear un espacio escolar y la guardo en una variable para pasarsela a la vista principal
			$datosPrincipal['vista'] = $this->load->view('v_espacios_escolares_crear',$datos, true);
			
			//Cargo la vista principal con los datos de la vista para crear un espacio escolar
			$this->load->view('v_sistema', $datosPrincipal);
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
		
	//Esto metodo no se puede llamar con ajax
	//Este metodo crea realmente el espacio escolar. La respuesta se muestra en un iframe dentro del formulario
	function crear(){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post el tipo, nombre, cantidad de alumnos, colores, si es compartible y el estado del espacio escolar a crear.
			if(is_numeric($this->input->post('tipoEspacioEscolar',true)) && $this->input->post('tipoEspacioEscolar',true)>0 && $this->input->post('nombre',true) != "" && is_numeric($this->input->post('cantidadAlumnosMaxima',true)) && $this->input->post('cantidadAlumnosMaxima',true)>=0 && $this->input->post('colorpicker1',true)!="" && $this->input->post('colorpicker2',true)!="" && ($this->input->post('compartido',true) == '1' || $this->input->post('compartido',true) == '0') && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){
				//Cargo el modelo donde estan los datos de los tipos de espacios escolares
				$this->load->model('m_tipo_espacio_escolar');
				
				//Busco al tipo de espacio escolar para comprobar que exista
				$tipoEspacioEscolar = $this->m_tipo_espacio_escolar->get($this->input->post('tipoEspacioEscolar',true));
				
				//Tercera comprobacion: Que el tipo de espacio escolar pasado por la url sea existente
				if($tipoEspacioEscolar->num_rows() == 1){
					//Cargo el modelo donde estan los datos de los espacios escolares
					$this->load->model('m_espacio_escolar');
					
					//Creamos el espacio escolar
					$resultado = $this->m_espacio_escolar->crear($this->input->post('tipoEspacioEscolar',true),$this->input->post('nombre',true), $this->input->post('descripcion',true), $this->input->post('cantidadAlumnosMaxima',true), $this->input->post('colorpicker1',true), $this->input->post('colorpicker2',true), $this->input->post('compartido',true), $this->input->post('estado',true), $this->session->userdata('idUsuarioLog'));
					
					if($resultado == 1){
						echo("<script> alert('El espacio escolar: ".$this->input->post('nombre',true)." se ha creado correctamente. ".$mensaje."');</script>");
					}else{
						echo("<script> alert('El espacio escolar: ".$this->input->post('nombre',true)." no se ha creado. Ha habido un error.');</script>");
					}
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para crear un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}		
	}
	
	//Esto metodo no se puede llamar con ajax
	//Este metodo abre la pantalla con los datos del espacio escolar pasado por la url
	function abrirPantallaModificar($idEspacioEscolar=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idEspacioEscolar pasado sea numerico y mayor que cero.
			if(is_numeric($idEspacioEscolar) && $idEspacioEscolar>0){
				//Cargo el modelo donde estan los datos de los espacios escolares
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar que hay que modificar
				$espacioEscolar = $this->m_espacio_escolar->get($idEspacioEscolar);
				
				//Tercera comprobacion: Que el espacio escolar pasado por la url sea existente
				if($espacioEscolar->num_rows() == 1){
					//Le paso el espacio escolar a modificar a la vista
					$datos['espacioEscolarSel'] = $espacioEscolar;
					
					//Busco al espacio escolar siguiente del que hay que modificar
					$idEspacioEscolarSig = $this->m_espacio_escolar->getContiguo($idEspacioEscolar,1);
									
					//Le paso el espacio escolar siguiente del que hay que modificar a la vista
					$datos['idEspacioEscolarSig'] = $idEspacioEscolarSig;
					
					//Busco al espacio escolar anterior del que hay que modificar
					$idEspacioEscolarAnt = $this->m_espacio_escolar->getContiguo($idEspacioEscolar,-1);
					
					//Le paso el espacio escolar anterior del que hay que modificar a la vista
					$datos['idEspacioEscolarAnt'] = $idEspacioEscolarAnt;
					
					//Cargo el modelo donde estan los datos de los tipos de espacios registrados
					$this->load->model('m_tipo_espacio_escolar');
					
					//Busco todos los tipos de espacios y no solo los activos
					$listadoTiposEspaciosEscolares = $this->m_tipo_espacio_escolar->buscar();
					
					//Le paso el listado de todos los tipos de espacios a la vista para que los muestre en la lista seleccionable
					$datos['tiposEspaciosEscolares'] = $listadoTiposEspaciosEscolares;
					
					//Cargo la vista donde se muestra el formulario para modificar un espacio escolar y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_espacios_escolares_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar un espacio escolar
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Este metodo realmente modifica los datos de un espacio escolar
	function modificar($idEspacioEscolar=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post el tipo, nombre, cantidad de alumnos, colores, si es compartible y el estado del espacio escolar a modificar. 
			//Ademas que se haya pasado por la url el id del espacio escolar a modificar
			if(is_numeric($idEspacioEscolar) && $idEspacioEscolar>0 && is_numeric($this->input->post('tipoEspacioEscolar',true)) && $this->input->post('tipoEspacioEscolar',true)>0 && 
				$this->input->post('nombre',true) != "" && is_numeric($this->input->post('cantidadAlumnosMaxima',true)) && $this->input->post('cantidadAlumnosMaxima',true)>=0 && 
				$this->input->post('colorpicker1',true)!="" && $this->input->post('colorpicker2',true)!="" && 
				($this->input->post('compartido',true) == '1' || $this->input->post('compartido',true) == '0') && ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0')){
				
				//Cargo el modelo donde estan los datos de los espacios escolares
				$this->load->model('m_espacio_escolar');
				
				//Busco al espacio escolar que hay que modificar para comprobar que exista
				$espacioEscolar = $this->m_espacio_escolar->get($idEspacioEscolar);
				
				//Cargo el modelo donde estan los datos de los tipos de espacios escolares
				$this->load->model('m_tipo_espacio_escolar');
				
				//Busco al tipo de espacio escolar para comprobar que exista
				$tipoEspacioEscolar = $this->m_tipo_espacio_escolar->get($this->input->post('tipoEspacioEscolar',true));
				
				//Tercera comprobacion: Que el espacio escolar pasado por la url sea existente y el tipo tambien.
				if($espacioEscolar->num_rows() == 1 && $tipoEspacioEscolar->num_rows() == 1){
					//Modificamos el espacio escolar
					$resultado = $this->m_espacio_escolar->modificar($idEspacioEscolar, $this->input->post('tipoEspacioEscolar',true),$this->input->post('nombre',true), $this->input->post('descripcion',true), $this->input->post('cantidadAlumnosMaxima',true), $this->input->post('colorpicker1',true), $this->input->post('colorpicker2',true), $this->input->post('compartido',true), $this->input->post('estado',true));
								
					if($resultado == 1){										
						echo("<script> alert('El espacio escolar: ".$this->input->post('nombre',true)." se ha modificado correctamente.');</script>");
					}else{
						echo("<script> alert('El espacio escolar: ".$this->input->post('nombre',true)." no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
					}
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}
	}
}